package com.t.bricks.bussiness.db.entity.customer.base;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;

import com.t.bricks.annotation.DataInfo;

/**
 * 顾客信息'Customer'表实体类
 * 警告:非数据库字段禁止在此添加,应该创建扩展实体中添加
 * @author HuangXinBian
 */
@ApiModel("顾客信息Customer")
@DataInfo(sDbName="BricksMall", sTableName="Customer")
public class CustomerBase implements Serializable {

	private static final long serialVersionUID = 1L;// 使用rmi时需修改

	/**
	 * 记录编号
	 */
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="uId", sComment="记录编号", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=true, isNull=false,
		iMaxLength=32, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=0 )
	@ApiModelProperty(value="记录编号", example="", position=0)
	//[end]
	protected String uId;

	/**
	 * 姓名
	 */
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="sName", sComment="姓名", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=false,
		iMaxLength=50, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=1 )
	@ApiModelProperty(value="姓名", example="", position=1)
	//[end]
	protected String sName;

	/**
	 * 别名
	 */
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="sAliases", sComment="别名", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=50, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=2 )
	@ApiModelProperty(value="别名", example="", position=2)
	//[end]
	protected String sAliases;

	/**
	 * 识别号(电话)
	 */
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="sNo", sComment="识别号(电话)", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=false,
		iMaxLength=20, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=3 )
	@ApiModelProperty(value="识别号(电话)", example="", position=3)
	//[end]
	protected String sNo;

	/**
	 * 密码(加密)
	 */
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="sPass", sComment="密码(加密)", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=false,
		iMaxLength=64, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=4 )
	@ApiModelProperty(value="密码(加密)", example="", position=4)
	//[end]
	protected String sPass;

	/**
	 * 手势密码(加密)
	 */
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="sSignPass", sComment="手势密码(加密)", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=64, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=5 )
	@ApiModelProperty(value="手势密码(加密)", example="", position=5)
	//[end]
	protected String sSignPass;

	/**
	 * 用户类型
	 */
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="sType", sComment="用户类型", isDbField=true, sDbFileType="varchar",
		sDefaultData="顾客", isExtra=false, iskey=false, isNull=true,
		iMaxLength=50, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=6 )
	@ApiModelProperty(value="用户类型", example="顾客", position=6)
	//[end]
	protected String sType;

	/**
	 * 用户来源表
	 */
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="sOwner", sComment="用户来源表", isDbField=true, sDbFileType="varchar",
		sDefaultData="BricksMall.Customer", isExtra=false, iskey=false, isNull=true,
		iMaxLength=100, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=7 )
	@ApiModelProperty(value="用户来源表", example="BricksMall.Customer", position=7)
	//[end]
	protected String sOwner;

	/**
	 * 性别
	 */
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="iSex", sComment="性别", isDbField=true, sDbFileType="int",
		sDefaultData="1", isExtra=false, iskey=false, isNull=false,
		iMaxLength=100, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=8 )
	@ApiModelProperty(value="性别", example="1", position=8)
	//[end]
	protected Integer iSex;

	/**
	 * 地址
	 */
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="sAddress", sComment="地址", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=100, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=9 )
	@ApiModelProperty(value="地址", example="", position=9)
	//[end]
	protected String sAddress;

	/**
	 * 级别
	 */
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="iLeven", sComment="级别", isDbField=true, sDbFileType="int",
		sDefaultData="1", isExtra=false, iskey=false, isNull=true,
		iMaxLength=100, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=10 )
	@ApiModelProperty(value="级别", example="1", position=10)
	//[end]
	protected Integer iLeven;

	/**
	 * 黑名单
	 */
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="iBlackList", sComment="黑名单", isDbField=true, sDbFileType="int",
		sDefaultData="0", isExtra=false, iskey=false, isNull=false,
		iMaxLength=100, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=11 )
	@ApiModelProperty(value="黑名单", example="0", position=11)
	//[end]
	protected Integer iBlackList;

	/**
	 * 微信关注号
	 */
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="sWeChatOpenId", sComment="微信关注号", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=32, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=12 )
	@ApiModelProperty(value="微信关注号", example="", position=12)
	//[end]
	protected String sWeChatOpenId;

	/**
	 * 密码(AES加密)
	 */
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="sAesPass", sComment="密码(AES加密)", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=100, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=13 )
	@ApiModelProperty(value="密码(AES加密)", example="", position=13)
	//[end]
	protected String sAesPass;

	/**
	 * 微信标识
	 */
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="sWechatUid", sComment="微信标识", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=40, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=14 )
	@ApiModelProperty(value="微信标识", example="", position=14)
	//[end]
	protected String sWechatUid;

	/**
	 * 备注
	 */
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="sMemo", sComment="备注", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=200, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=15 )
	@ApiModelProperty(value="备注", example="", position=15)
	//[end]
	protected String sMemo;

	/**
	 * 创建人
	 */
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="sCreator", sComment="创建人", isDbField=true, sDbFileType="varchar",
		sDefaultData="00000000", isExtra=false, iskey=false, isNull=false,
		iMaxLength=32, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=16 )
	@ApiModelProperty(value="创建人", example="00000000", position=16)
	//[end]
	protected String sCreator;

	/**
	 * 创建日期
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")//解决表单提交时字符串时间值错误
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="dCreateDate", sComment="创建日期", isDbField=true, sDbFileType="datetime",
		sDefaultData="", isExtra=false, iskey=false, isNull=false,
		iMaxLength=23, isDecimal=false, iIntegralLength=-1, iDecimalLength=-1, iIndex=17 )
	@ApiModelProperty(value="创建日期", example="", position=17)
	//[end]
	protected Date dCreateDate;

	/**
	 * 修改人
	 */
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="sModifieder", sComment="修改人", isDbField=true, sDbFileType="varchar",
		sDefaultData="00000000", isExtra=false, iskey=false, isNull=false,
		iMaxLength=32, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=18 )
	@ApiModelProperty(value="修改人", example="00000000", position=18)
	//[end]
	protected String sModifieder;

	/**
	 * 修改日期
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")//解决表单提交时字符串时间值错误
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="dModifiedDate", sComment="修改日期", isDbField=true, sDbFileType="datetime",
		sDefaultData="", isExtra=false, iskey=false, isNull=false,
		iMaxLength=23, isDecimal=false, iIntegralLength=-1, iDecimalLength=-1, iIndex=19 )
	@ApiModelProperty(value="修改日期", example="", position=19)
	//[end]
	protected Date dModifiedDate;

	/**
	 * 状态(枚举,1:启用;2:禁用)
	 */
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="iState", sComment="状态(枚举,1:启用;2:禁用)", isDbField=true, sDbFileType="int",
		sDefaultData="1", isExtra=false, iskey=false, isNull=false,
		iMaxLength=100, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=20 )
	@ApiModelProperty(value="状态(枚举,1:启用;2:禁用)", example="1", position=20)
	//[end]
	protected Integer iState;

	/**
	 * 序号
	 */
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="iIndex", sComment="序号", isDbField=true, sDbFileType="int",
		sDefaultData="1", isExtra=false, iskey=false, isNull=false,
		iMaxLength=100, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=21 )
	@ApiModelProperty(value="序号", example="1", position=21)
	//[end]
	protected Integer iIndex;

	/**
	 * 版本
	 */
	//[start]
	@DataInfo( sDbName="BricksMall", sTableName="Customer",
		sName="iVersion", sComment="版本", isDbField=true, sDbFileType="int",
		sDefaultData="1", isExtra=false, iskey=false, isNull=false,
		iMaxLength=100, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=22 )
	@ApiModelProperty(value="版本", example="1", position=22)
	//[end]
	protected Integer iVersion;

	/**
	 * 取 记录编号
	 * @return String
	 */
	public String getuId() {
		return uId;
	}

	/**
	 * 设置记录编号
	 * @param uId
	 */
	public void setuId(String uId) {
		this.uId = uId;
	}

	/**
	 * 取 姓名
	 * @return String
	 */
	public String getsName() {
		return sName;
	}

	/**
	 * 设置姓名
	 * @param sName
	 */
	public void setsName(String sName) {
		this.sName = sName;
	}

	/**
	 * 取 别名
	 * @return String
	 */
	public String getsAliases() {
		return sAliases;
	}

	/**
	 * 设置别名
	 * @param sAliases
	 */
	public void setsAliases(String sAliases) {
		this.sAliases = sAliases;
	}

	/**
	 * 取 识别号(电话)
	 * @return String
	 */
	public String getsNo() {
		return sNo;
	}

	/**
	 * 设置识别号(电话)
	 * @param sNo
	 */
	public void setsNo(String sNo) {
		this.sNo = sNo;
	}

	/**
	 * 取 密码(加密)
	 * @return String
	 */
	public String getsPass() {
		return sPass;
	}

	/**
	 * 设置密码(加密)
	 * @param sPass
	 */
	public void setsPass(String sPass) {
		this.sPass = sPass;
	}

	/**
	 * 取 手势密码(加密)
	 * @return String
	 */
	public String getsSignPass() {
		return sSignPass;
	}

	/**
	 * 设置手势密码(加密)
	 * @param sSignPass
	 */
	public void setsSignPass(String sSignPass) {
		this.sSignPass = sSignPass;
	}

	/**
	 * 取 用户类型
	 * @return String
	 */
	public String getsType() {
		return sType;
	}

	/**
	 * 设置用户类型
	 * @param sType
	 */
	public void setsType(String sType) {
		this.sType = sType;
	}

	/**
	 * 取 用户来源表
	 * @return String
	 */
	public String getsOwner() {
		return sOwner;
	}

	/**
	 * 设置用户来源表
	 * @param sOwner
	 */
	public void setsOwner(String sOwner) {
		this.sOwner = sOwner;
	}

	/**
	 * 取 性别
	 * @return Integer
	 */
	public Integer getiSex() {
		return iSex;
	}

	/**
	 * 设置性别
	 * @param iSex
	 */
	public void setiSex(Integer iSex) {
		this.iSex = iSex;
	}

	/**
	 * 取 地址
	 * @return String
	 */
	public String getsAddress() {
		return sAddress;
	}

	/**
	 * 设置地址
	 * @param sAddress
	 */
	public void setsAddress(String sAddress) {
		this.sAddress = sAddress;
	}

	/**
	 * 取 级别
	 * @return Integer
	 */
	public Integer getiLeven() {
		return iLeven;
	}

	/**
	 * 设置级别
	 * @param iLeven
	 */
	public void setiLeven(Integer iLeven) {
		this.iLeven = iLeven;
	}

	/**
	 * 取 黑名单
	 * @return Integer
	 */
	public Integer getiBlackList() {
		return iBlackList;
	}

	/**
	 * 设置黑名单
	 * @param iBlackList
	 */
	public void setiBlackList(Integer iBlackList) {
		this.iBlackList = iBlackList;
	}

	/**
	 * 取 微信关注号
	 * @return String
	 */
	public String getsWeChatOpenId() {
		return sWeChatOpenId;
	}

	/**
	 * 设置微信关注号
	 * @param sWeChatOpenId
	 */
	public void setsWeChatOpenId(String sWeChatOpenId) {
		this.sWeChatOpenId = sWeChatOpenId;
	}

	/**
	 * 取 密码(AES加密)
	 * @return String
	 */
	public String getsAesPass() {
		return sAesPass;
	}

	/**
	 * 设置密码(AES加密)
	 * @param sAesPass
	 */
	public void setsAesPass(String sAesPass) {
		this.sAesPass = sAesPass;
	}

	/**
	 * 取 微信标识
	 * @return String
	 */
	public String getsWechatUid() {
		return sWechatUid;
	}

	/**
	 * 设置微信标识
	 * @param sWechatUid
	 */
	public void setsWechatUid(String sWechatUid) {
		this.sWechatUid = sWechatUid;
	}

	/**
	 * 取 备注
	 * @return String
	 */
	public String getsMemo() {
		return sMemo;
	}

	/**
	 * 设置备注
	 * @param sMemo
	 */
	public void setsMemo(String sMemo) {
		this.sMemo = sMemo;
	}

	/**
	 * 取 创建人
	 * @return String
	 */
	public String getsCreator() {
		return sCreator;
	}

	/**
	 * 设置创建人
	 * @param sCreator
	 */
	public void setsCreator(String sCreator) {
		this.sCreator = sCreator;
	}

	/**
	 * 取 创建日期
	 * @return Date
	 */
	public Date getdCreateDate() {
		return dCreateDate;
	}

	/**
	 * 设置创建日期
	 * @param dCreateDate
	 */
	public void setdCreateDate(Date dCreateDate) {
		this.dCreateDate = dCreateDate;
	}

	/**
	 * 取 修改人
	 * @return String
	 */
	public String getsModifieder() {
		return sModifieder;
	}

	/**
	 * 设置修改人
	 * @param sModifieder
	 */
	public void setsModifieder(String sModifieder) {
		this.sModifieder = sModifieder;
	}

	/**
	 * 取 修改日期
	 * @return Date
	 */
	public Date getdModifiedDate() {
		return dModifiedDate;
	}

	/**
	 * 设置修改日期
	 * @param dModifiedDate
	 */
	public void setdModifiedDate(Date dModifiedDate) {
		this.dModifiedDate = dModifiedDate;
	}

	/**
	 * 取 状态(枚举,1:启用;2:禁用)
	 * @return Integer
	 */
	public Integer getiState() {
		return iState;
	}

	/**
	 * 设置状态(枚举,1:启用;2:禁用)
	 * @param iState
	 */
	public void setiState(Integer iState) {
		this.iState = iState;
	}

	/**
	 * 取 序号
	 * @return Integer
	 */
	public Integer getiIndex() {
		return iIndex;
	}

	/**
	 * 设置序号
	 * @param iIndex
	 */
	public void setiIndex(Integer iIndex) {
		this.iIndex = iIndex;
	}

	/**
	 * 取 版本
	 * @return Integer
	 */
	public Integer getiVersion() {
		return iVersion;
	}

	/**
	 * 设置版本
	 * @param iVersion
	 */
	public void setiVersion(Integer iVersion) {
		this.iVersion = iVersion;
	}

	/**
	 * 复制对象
	 * @param source 数据源
	 * @return CustomerBase
	 */
	public static CustomerBase copy(CustomerBase source) {
		if (null == source) {
			return null;
		}
		
		CustomerBase target = new CustomerBase();
		target.setuId(source.getuId());
		target.setsName(source.getsName());
		target.setsAliases(source.getsAliases());
		target.setsNo(source.getsNo());
		target.setsPass(source.getsPass());
		target.setsSignPass(source.getsSignPass());
		target.setsType(source.getsType());
		target.setsOwner(source.getsOwner());
		target.setiSex(source.getiSex());
		target.setsAddress(source.getsAddress());
		target.setiLeven(source.getiLeven());
		target.setiBlackList(source.getiBlackList());
		target.setsWeChatOpenId(source.getsWeChatOpenId());
		target.setsAesPass(source.getsAesPass());
		target.setsWechatUid(source.getsWechatUid());
		target.setsMemo(source.getsMemo());
		target.setsCreator(source.getsCreator());
		target.setdCreateDate(source.getdCreateDate());
		target.setsModifieder(source.getsModifieder());
		target.setdModifiedDate(source.getdModifiedDate());
		target.setiState(source.getiState());
		target.setiIndex(source.getiIndex());
		target.setiVersion(source.getiVersion());

		return target;
	}
	
	/**
	 * 克隆对象
	 * @return CustomerBase
	 */
	public CustomerBase clone() {
		return copy(this);
	}
	
}
